/**
 * @description 格式update_time
 * @param { string } s
 */
export const camelCaseToUnderscore = (s: string) =>
	s.replace(/([A-Z])/g, ($1) => `_${$1.toLowerCase()}`)
/**
 * @description 格式updateTime
 * @param { string } s
 */
export const underscoreToCamelCase = (s: string) =>
	s.replace(/(_([a-z]))/g, ($1) => $1.toUpperCase()[1])
/**
 * @description new Date()、东八区时间转换成 yyyy-MM-dd HH:mm:ss
 * @param { string } isoTime
 */
export const convertDateTime = (isoTime: string) => {
	const date = new Date(isoTime)
	const year = date.getUTCFullYear()
	const month = String(date.getUTCMonth() + 1).padStart(2, '0')
	const day = String(date.getUTCDate()).padStart(2, '0')
	const localTime = date.toLocaleTimeString('zh-CN', {
		hour12: false, //是一个 toLocaleString 方法的选项，用于指定是否使用 12 小时制。当设置为 false 时，时间将以 24 小时制显示
		timeZone: 'Asia/Shanghai' //另一个 toLocaleString 方法的选项，用于指定所使用的时区。在这个例子中，时区被设置为 "Asia/Shanghai"，表示将时间转换为中国上海的当地时间
	})
	return `${year}-${month}-${day} ${localTime}`
}
/**
 * @description 时间戳转换成 yyyy-MM-dd HH:mm:ss
 * @param { number } timestamp
 */
export const convertTimestamp = (timestamp: number) => {
	const date = new Date(timestamp)
	const year = String(date.getFullYear())
	const month = String(date.getMonth() + 1).padStart(2, '0')
	const day = String(date.getDate()).padStart(2, '0')
	const hours = String(date.getHours()).padStart(2, '0')
	const minutes = String(date.getMinutes()).padStart(2, '0')
	const seconds = String(date.getSeconds()).padStart(2, '0')

	return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`
}
